Method and system for preventing error amplification in natural language dialogues

ABSTRACT

A method and system for allowing a user to interface to an interactive voice response system via natural language commands. The method and apparatus transitions users to a known state upon poor recognition results, transitions users to a lateral state upon entry of a command corresponding to a lateral state, and provides intermediate barge-in states to account for user speech patterns

CLAIM OF PRIORITY

[0001] This application claims priority from U.S. Provisional PatentApplication No. 60/250,412 entitled “SYSTEM FOR USER INTERFACE DESIGN”filed on behalf of Balentine, et al., on Nov. 30, 2000 (Attorney DocketNo. EIG 2070000).

TECHNICAL FIELD

[0002] The invention relates generally to telecommunications systemsand, more particularly, to providing a method and an apparatus providinga voice interface to an Interactive Voice Response system.

BACKGROUND

[0003] Interactive voice response systems (IVR), such as brokeragesystems, flight information systems, accounting systems, and the like,generally allow users, i.e., callers, to access information bynavigating a series of prompts and speaking voice commands. The voicecommands generally comprise single commands, commonly referred to assingle-token commands, and prevent the users from entering multi-tokencommands in a natural-language (NL) format.

[0004] NL applications are preferred because they more closely mimic ahuman-to-human interaction and allow more information to be conveyed ina shorter amount of time. For instance, a series of commands in asingle-token application that retrieve a stock quote may entail the userspeaking “quote” and the stock name/symbol at two separate prompts. Inan NL application, however, a user may simply speak, “I would like aquote for Disney.” The NL command generally conveys all informationnecessary to retrieve the request information in fewer prompt-commandcycles than a single-token system.

[0005] Users, however, generally experience difficulty using NLapplications. First, NL applications typically allow and acceptsingle-token commands, which the user believes to be more reliable.Thereafter the users become accustomed to interacting in a single-tokenmanner, losing the capability of employing full sentences containingmultiple tokens. This phenomenon is commonly referred to as“convergence,” in that the IVR system and the user converge on a limitedway of interacting.

[0006] Another problem with interfacing with NL IVR systems is theability to interrupt the prompt with a command, commonly referred to asbarge-in. Barge-in is a natural behavior of a user interfacing witheither another human or an IVR system, especially as the user becomesfamiliar with a particular IVR system. When barging-in, however, a usermay typically have a false start or stutter before repeating thecommand. IVR systems generally respond by rejecting the command, whichreinforces convergence to a single-token command discussed above.

[0007] Prior art attempts generally allowed single-token and NL commandsin a single IVR system. This solution, however, fails to “train” theuser in the more efficient method of using NL commands. As a result, theNL commands remain ineffective.

[0008] Therefore, what is needed is a method and a system forinterfacing with an IVR system in an NL format.

SUMMARY

[0009] The present invention provides a method and an apparatus forproviding an interface between a user and a machine through which theuser is able to speak voice commands, preferably in a natural languageformat. In one embodiment, the method and apparatus provides atransition from one state to a default state upon a failure toconfidently recognize a spoken command.

[0010] In another embodiment of the present invention, the method andapparatus provides a transition from one state to a previous state upona failure to confidently recognize a spoken command.

[0011] In yet another embodiment of the present invention, the methodand apparatus allows a tentative barge-in state and/or a tentativemachine listening state to accommodate user speech patterns, such asfalse starts, stuttering, and the like, during barge-in.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] For a more complete understanding of the present invention, andthe advantages thereof, reference is now made to the followingdescriptions taken in conjunction with the accompanying drawings, inwhich:

[0013]FIG. 1 schematically depicts a typical network environment thatembodies the present invention;

[0014]FIG. 2 is a top-level state transition diagram illustrating oneembodiment in which a user interfaces with an IVR system with NLprompts;

[0015]FIG. 3 is a state transition diagram illustrating one embodimentin which an interaction state is shown;

[0016]FIG. 4 is a state transition diagram illustrating one embodimentof barge-in; and

[0017]FIG. 5 is a state transition diagram illustrating anotherembodiment of barge-in.

DETAILED DESCRIPTION

[0018] The principles and advantages of the present invention are bestunderstood by referring to the illustrated embodiment depicted in FIGS.1-5.

[0019] Referring to FIG. 1 of the drawings, the reference numeral 100generally designates an interactive voice response (IVR) systemembodying features of the present invention in a telecommunicationsnetwork environment. The IVR system 100 is exemplified herein as anapplication in a telecommunications environment that takes the form ofcall center automation, call routers, call directors, voice portals,voice web applications, telephone access to voicemail and email,automated personal assistants hosted by telephone service providers, andthe like. It is understood that other types of environments and/orapplications may constitute the IVR system 100 as well, and the IVRsystem 100 is not limited to being a telecommunications environment andmay, for example, include environments such as voice recognition used inwireline/wireless telephones for voice-activated dialing, microphonesattached to personal computers, voice portals, speech-enhanced servicessuch as voice mail, personal assistant applications, and the like,speech interfaces with devices such as home appliances, communicationsdevices, office equipment, vehicles, and the like, otherapplications/environments that utilize voice recognition as a means forcommanding/controlling, and the like.

[0020] The IVR system 100 generally comprises a telephone 110 coupled toa service provider 112 via a telecommunications network 114, such as thePublic Switched Telephone Network (PSTN). The service provider 112 isconfigured for providing the user 116 with services, such as stockquotes, customer services, account services, and the like, utilizingvoice as a means of input.

[0021] The service provider 112 generally comprises an IVR application118, which in turn utilizes a voice recognition algorithm 120 to analyzea spoken speech pattern and return a result to the IVR application 118.Voice recognition algorithms, such as template-based dynamic time warp(DTW), hidden Markov models (HMM), Viterbi search algorithms, and thelike, generally compare a spoken speech pattern with the patterns of oneor more model grammars, i.e., words or phrases. The result from thevoice recognition algorithm 120 typically comprises a value thatcorresponds to a command and a confidence level. The confidence level isan indication of how close the spoken speech pattern matches a modelspeech pattern corresponding to the result.

[0022] In accordance with the present invention, a user 116 accesses theservice provider 112 via the telephone 110 and the telecommunicationsnetwork 114 for the purpose of receiving information and/or performing afunction via one or more voice commands, i.e., spoken speech patterns.The IVR application 118 of the service provider 112 receives the voicecommands and performs the voice recognition algorithm 120. The voicerecognition algorithm 120 evaluates the speech patterns of the voicecommands by comparing the speech patterns of the user 116 with the modelspeech patterns of a grammar, i.e., command words that are valid in anygiven state. The voice recognition algorithm 120 returns a resultindicating the command that the voice recognition algorithm believes theuser 116 has spoken and a confidence level. Given the result and theconfidence level from the voice recognition algorithm 120, the IVRapplication 118 performs the requested function and/or functions, ifappropriate, otherwise, the IVR application 118 utilizes internalalgorithms to handle error conditions, such as no command recognized,low confidence, and the like.

[0023]FIG. 2 is a state transition diagram that may be used by the IVRsystem 100 in accordance with one embodiment of the present invention tocontrol the voice recognition of a verbal command. While the referencenumeral 200 illustrates a top-level state transition diagram of the IVRsystem 100, it should be noted that the IVR system 100 generallycomprises nested prompts, and as such, it will be appreciated by oneskilled in the art that the top-level state transition diagram 200 maybe duplicated within various levels of the IVR system 100. Additionally,in the discussion that follows, FIG. 2 represents a top-level statetransition diagram and FIG. 3 represents a state transition diagram thatmay be used within one of the interaction states, such as theInteraction State 230 and/or the Default Interaction State 240 of FIG.2.

[0024] Accordingly, in Start State 210 the IVR system 100 is awaiting an“initial trigger” event 212, such as the arrival of an incoming call,system activation, or other event indicating the start of a recognitionsession. Upon the arrival of the “initial trigger” event 212, the IVRsystem 100 transitions to an Entry Branch State 220, wherein preferablya greeting and/or welcoming message is played, a prompt is played thatindicates to the user 116 the available alternatives, the user 116speaks a voice command, and the voice recognition algorithm 120 executesand returns a command and a confidence level.

[0025] Preferably, the Entry Branch State 220 provides the user 116 witha prompt indicating a 2-way branch, such as “Would you like to get astock quote or place a trade?” Limiting the number of possible branchesreduces errors due to branching to the wrong state, commonly referred toas state errors. State errors typically cause errors to compound andusers to become frustrated, both of which reduce the effectiveness of NLrecognition systems. Empirical testing has shown, however, that 3-waybranching states, such as “Would you like to get a stock quote, place atrade, or check account balances?”, are also effective. The use ofadditional branching states is dependent upon, among other things, thevoice recognition algorithm 120, the IVR application 118, the similarityof the grammar, and the like.

[0026] If, while in the Entry Branch State 220, the voice recognitionalgorithm 120 returns a confident result corresponding to “2-B”, thenthe IVR system 100 transitions to an Interaction State 230, wherein thefunctions corresponding with a “2-B” command are performed, asillustrated by the “confident ‘2-B’” event 222.

[0027] If, in the Entry Branch State 220, however, the voice recognitionalgorithm 118 returns a confident result corresponding to “2-C” or aresult indicating that the voice recognition algorithm 118 was unable toreturn a confident result, then the IVR system 100 transitions into aDefault Interaction State 240, wherein the functions corresponding withthe “2-C” command are performed, as illustrated by the “confident ‘2-C’”event 224 and the “no confident result” event 226, respectively. Bytransitioning from the Entry Branch State 220 to the Default InteractionState 240 as a default branch when the voice recognition algorithm 118fails to return a confident result allows the IVR system 100 toautomatically transition the user 116 into the state most likelyrequested by the user 116. For instance, a service provider 112 thatprovides a user 116 with an alternative between receiving a stock quoteand entering a stock buy/sell order may find that most inquiries pertainto receiving a stock quote. In this circumstance the service provider112 may automatically transition the user 116 from the Entry BranchState 220 to the Default Interaction State 240, i.e., receive a stockquote, if the voice recognition algorithm 118 fails to return aconfident result. As a result, the user 116 will most likely perceivethat the voice recognition algorithm correctly recognized the voicecommand of the user 116.

[0028] The Interaction State 230 and the Default Interaction State 240represent states that perform functions for the user 116. As discussedabove, these states may comprise additional prompts and state branchesthat are in themselves similar to FIG. 2. Further detail of theInteraction State 230 and the Default Interaction State 240 arediscussed below with reference to FIG. 4.

[0029] The IVR system 100 remains in the Interaction State 230 while thevoice recognition algorithm returns a successful response, as indicatedby the “success” event 232. For example, the Interaction State 230 maycorrespond to the entering a stock buy/sell order of the examplereferred to above. In that state, a user 116 may enter buy/sell ordersfor several stocks, each one represented by the “success” event 232.

[0030] If, while in the Interaction State 230, the voice recognitionalgorithm returns a confident result corresponding to a “tunneling”phrase, such as “2-C,” the IVR system 100 may transition to the statecorresponding to the tunneling phrase, such as that indicated by the“tunnel to ‘2-C’” event 236 and the Default Interaction State 240. A“tunneling” phrase is a phrase that indicates the user desires toperform a transaction corresponding to a lateral state. Preferably, thegrammar of any one state includes the grammar corresponding to thatstate, a tunneling grammar, and a global grammar for such items as“help,” “cancel,” and the like.

[0031] The tunneling grammar preferably comprises a subset of thegrammar of the Entry Branch State 220 corresponding to the lateralstate, and a subset of the grammar of the corresponding lateral state.For example, in the broker application discussed above where the EntryBranch State 220 represents a branch between the Interaction State 230corresponding to stock trades and the Default Interaction State 240corresponding to stock quotes, the grammar for the Entry Branch State220 may comprise “quotes,” “(stock) trade,” “I'd like a quote,” “I'dlike (stock) trades,” and “make a (stock) trade.” Similarly, the grammarfor the Default Interaction State 240 may comprise “<company>,” “quoteon<company>,” “I'd like a quote on<company>,” and “tell me about<company>.” Therefore, a tunneling grammar for the Interaction State 230may comprise a subset of the grammar of the Entry Branch State 220corresponding to the lateral state (such as “I'd like a quote”), and asubset of the grammar of the corresponding lateral states (such as “I'dlike a quote on<company>”).

[0032] It should be noted, however, that the tunneling grammar foralternate states, such as an entry branch state or alternativeinteraction states, preferably comprises word models that are resistantto out-of-grammar errors. As a result, the likelihood of transitioninginto a lateral state by error, thereby compounding state errors, isreduced.

[0033] Note that the grammar for the Default Interaction State 240contains a phrase that is not contained in the tunneling phrase, such as“Tell me about <company>.” Likewise, the grammar for the Entry BranchState 220 contains a phrase that is also not contained in the tunnelingphrase, such as “quote.” The tunneling grammar preferably represents theideal phrases that demonstrate the user is or has become familiar withthe IVR system 100. Additionally, constraining the tunneling grammaraids in the IVR system 100 performance and user acceptance by reducingthe occurrence of false acceptance and substitution errors by reducingthe size of the active grammar, and it rewards efficient user behaviorand subtly punishes frivolous or superfluous speech.

[0034] If, while in the Interaction State 230, the voice recognitionalgorithm 120 fails to return a confident result for a predeterminednumber of attempts, preferably two consecutive attempts, the IVR system100 preferably transitions to the Entry Branch State 220, as indicatedby the “test state-error hypothesis” event 234. This transitions theuser 116 to a known entry state in the event that the IVR system 100cannot determine what command the user 116 has spoken. In such asituation, the voice recognition algorithm 120 has failed a plurality ofattempts, such as two attempts illustrated in FIG. 2, to recognize thespoken command. As a result, the IVR application 118 assumes that astate error has occurred and that the user 116 desires to be in adifferent state. In order to test this hypothesis, the IVR application118 transitions to a known state and presents the user 116 with optionsthat may allow the user 116 to transition into the desired state. Bydoing so, the IVR system 100 avoids taking undesirable branches andcompounding state errors.

[0035] The Default Interaction State 240 is similar in behavior to theInteraction State 230. Specifically, the IVR system 100 remains in theDefault Interaction State while the voice recognition algorithm returnsa valid response, as indicated by the “success” event 242, and tunnelsthe user 116 to the Interaction State 230 upon a confident voicerecognition algorithm 120 result corresponding to the Interaction State230, as indicated by the “tunnel to ‘2-B’” event 246. Additionally, theIVR system 100 leaps from the Default Interaction State 240 to the EntryBranch State 220 upon a “test state-error hypothesis” event 244, i.e.,the voice recognition algorithm 120 failed to return a confident resultfor a predetermined number of attempts, preferably two consecutiveattempts.

[0036]FIG. 3 is a state transition diagram that may be used by the IVRsystem 100 in accordance with one embodiment of the present invention tocontrol an interaction state as discussed above with reference to theInteraction State 230 and the Default Interaction State 240 of FIG. 2.Specifically, the reference numeral 300 generally illustrates ahigh-level interaction state transition diagram that may be used inconjunction with or separately from the top-level state transitiondiagram illustrated in FIG. 2 to control an IVR application in aninteraction state.

[0037] The interaction state transition diagram 300 begins with theoccurrence of an “entry” event 310, such as a “confident ‘2-B’” event222, a “confident ‘2-C’” event 224, a “no confident result” event 226, a“tunnel to ‘2-B’” event 246, a “tunnel to ‘2-C’” event 236, amongothers, of FIG. 2. Upon the “entry” event 310, the IVR system 100 entersa Play Prompt and Recognize State 320. In the Play Prompt and RecognizeState 320 the IVR system 100 plays a prompt, preferably an NL prompt,indicating to the user 116 the available alternatives, waits for theuser 116 to speak the chosen alternative, and attempts to recognize thechosen alternative of the user 116. An NL prompt is a machine promptthat suggests options indirectly to a user rather than explicitlyoffering choices that the user may speak. The NL prompt is preferably anexample prompt that encourages multi-token speech, such as “You mightsay, for example, ‘I'd like to fly from Dallas to Boston on November15th.’”

[0038] If the voice recognition algorithm 120 returns a good result thenthe IVR system 100 transitions into a Machine Turn State 330, asillustrated by the “good result” event 322. A good result eventpreferably comprises a result that indicates that the user 116 spoke acommand that the voice recognition algorithm 120 recognized with anacceptable confidence level and, optionally, that the user 116 spoke thecommand in an NL format, i.e., a multi-token sentence, instead of asingle-token command. An NL format is a multi-token utterance thatconforms to the grammatical structure suggested by the applicationthrough the use of NL prompts and instructions. A confident NL responsefrom the voice recognition algorithm is preferable to a single-tokenresponse because it is less vulnerable to false acceptance of OOG userspeech. An NL response therefore has less stringent confidence criteriathan a single-token response. If the voice recognition algorithm 120 didnot recognize with an acceptable confidence level, or, optionally, theuser 116 speaks a single-token command that was unable to return aresult with the more stringent confidence level required of single-tokenresponses, then the result is preferably considered a poor result.

[0039] The IVR system 100 remains in the Machine Turn State 330 whilethe IVR system 100 processes and/or performs the user command, such asprocessing a buy/sell stock order. After the IVR system 100 completesprocessing of the user command, the IVR system 100 preferablytransitions back to the Play Prompt and Recognize State 320, asindicated by the “success” event 334. The “success” event 334corresponds to the “success” event 232 and/or of 242 of FIG. 2.Preferably, the prompts that are played in the Play Prompt and RecognizeState 320 are success prompts, i.e., a shortened set of prompts that arenot necessarily NL prompts. For example, upon returning to the PlayPrompt and Recognize State 320 as a result of the “success” event 232,the prompts may be set to “What's next?”, “What now?”, “Anything else?”,and the like. Alternatively, the same prompts or other, alternative NLprompts may be used including non-speech sounds, such as tones, beeps,and the like.

[0040] If, while in the Play Prompt and Recognize State 320, the voicerecognition algorithm 120 returns a poor result as discussed above, theIVR system 100 preferably transitions to an Alternative Play Prompt andRecognize State 340 as illustrated by the “poor result” event 324,wherein the user 116 is prompted with an alternative prompt thatindicates another valid response in the current interaction state. Eachtransition to the Alternative Play Prompt and Recognize State 340represents an additional attempt given to the user 116. While FIG. 3depicts the preferred embodiment that utilizes one additional attempt,i.e., two consecutive attempts, additional Alternative Play Prompt andRecognize States may be utilized. The alternative prompts serve to aidin the training of the user to speak correct NL commands by providingvarious NL phrases that the user may mimic to perform the desiredfunction.

[0041] The following dialog is one example of a dialog between the IVRsystem 100 and the user 116, wherein the description in brackets relatesto the figure and state of the IVR system 100. In the following example,parentheses (“( )”) are used to indicate optional words and/or phrases,and angle brackets (“< >”) indicate that the user 116 may insert one ormore alternative phrases. Additionally, the following example is onlyone of many possible dialogs and applications of the present inventionand is presented only to clarify the purpose and interaction of thestates discussed above. As such, the following example should not limitthe present invention in any manner.

[0042] IVR system 100: “Would you like to get a quote or make a trade?”

[0043] [Entry Branch State 220, FIG. 2.]

[0044] User: “I'd like to make a trade.”

[0045] [Recognition Algorithm 120 returns a Confident “2-B” result(“Confident ‘2-B’” event 222) and the IVR system 100 transitions to thetrade state, i.e., the Interaction State 230 (FIG. 2), and the PlayPrompt and Recognize State 320 (FIG. 3).]

[0046] IVR system 100: “For Trades, you might say, for example, ‘Buy 100shares of Disney.’”

[0047] [IVR system 100 is in Play Prompt and Recognize State 320]

[0048] User: “Oh wait, can you first tell me what the current price ofMicrosoft is?”

[0049] [Recognition Algorithm 120 returns a Poor Result (“Poor Result”event 324) and the IVR system 100 transitions to the Alternative PlayPrompt and Recognize State 340 (FIG. 3).]

[0050] IVR system 100: “You might also try, ‘Sell 300 shares of Intel.’”

[0051] [Alternative Play Prompt and Recognize State 340.]

[0052] User: “No, I want the current price of Microsoft”

[0053] [Recognition Algorithm 120 returns a poor result causing a “teststate-error hypothesis” event 344 to occur and the IVR system 100transitions to the Entry Branch State 220 (FIG. 2).]

[0054] IVR system 100: “Would you like to get a quote, or make a trade?”

[0055] [Entry Branch State 220]

[0056] User: “Get a quote.”

[0057] [State Error recovered—Recognition Algorithm 120 returns aConfident “2-C” result (“Confident ‘2-C’” event 224) and the IVR system100 transitions to the quote state, i.e., the Default Interaction State240 (FIG. 2).]

[0058] IVR system 100: “For quotes, you might say, for example . . . ”

[0059] If, in the Play Prompt and Recognize State 320 or the AlternativePlay Prompt and Recognize State 340, the voice recognition algorithm 120returns a result corresponding to an alternative, lateral state grammar,then the IVR system 100 preferably tunnels, i.e., transitions, the user116 to the Machine Turn State 330 of the corresponding interactionstate, as indicated by the “tunnel to a lateral interaction state” event326, “tunnel to a lateral interaction state” event 342, and the “tunnelfrom a lateral interaction state” event 336 of FIG. 3, and the “tunnelto ‘2-C’” event 236 and the “tunnel to ‘2-B’” event 246 of FIG. 2. Toclarify in reference to FIGS. 2 and 3, if the IVR system 100 is in theInteraction State 230 of FIG. 2 and the Alternative Play Prompt andRecognize State 340 of FIG. 3, and the voice recognition algorithm 120returns a result corresponding to the Default Interaction State 240 ofFIG. 2, then the IVR system 100 transitions from the Alternative PlayPrompt and Recognize Prompt State 340 within the Interaction State 230as indicated by the “tunnel to a lateral interaction state” event 342and the “tunnel to ‘2-C’” event 236 and into the Machine Turn State 330within the Default Interaction State 240 as indicated by the “tunnelfrom a lateral interaction state” event 336 and the “tunnel to ‘2-C’”event 236. Similarly, if the IVR system 100 is in the Interaction State230 of FIG. 2 and the Play Prompt and Recognize State 320 of FIG. 3, andthe voice recognition algorithm 120 returns a result corresponding tothe Default Interaction State 240 of FIG. 2, then the IVR system 100transitions from the Play Prompt and Recognize Prompt State 320 withinthe Interaction State 230 as indicated by the “tunnel to a lateralinteraction state” event 326 and the “tunnel to ‘2-C’” event 236 andinto the Machine Turn State 330 within the Default Interaction State 240as indicated by the “tunnel from a lateral interaction state” event 336and the “tunnel to ‘2-C’” event 236.

[0060] If, in the Alternative Play Prompt and Recognize State 340, thevoice recognition algorithm 120 fails to return a good result, then theIVR system 100 preferably transitions back to a known state, asillustrated by the “test state-error hypothesis” event 344, whichcorresponds to the “test state-error hypothesis” event 234 and/or 244 ofFIG. 2.

[0061] Furthermore, if while in the “Alternative Play Prompt andRecognize State” 340 the voice recognition algorithm 120 returns a goodresult, then the IVR application 118 preferably transitions into the“Machine Turn State” 330, which processes the user command.

[0062]FIG. 4 is a state transition diagram that may be used by the IVRsystem 100 in accordance with one embodiment of the present invention tocontrol prompt playing and recognition states. Specifically, thereference numeral 400 generally illustrates a barge-in state transitiondiagram that may be used in prompt playing and recognition states suchas the Play Prompt and Recognize State 320 and the Alternative PlayPrompt and Recognize State 340 of FIG. 3. Accordingly, the “entry” event410 represents a transition into a prompt playing and recognition state.

[0063] Upon entry to the Machine Speaking State 420, a prompt isstarted. The prompt preferably continues to play until either the user116 begins speaking, as illustrated by the “user speech begins” event422, or the prompt is completed, as indicated by the “audio complete”event 424. If the “user speech begins” event 422 occurs while in theMachine Speaking State 420, then the IVR system 100 preferablytransitions into the Tentative Barge-In State 430, wherein the prompt isterminated and the Voice Recognition Algorithm 120 listens for the endof user speech.

[0064] The Voice Recognition Algorithm 120 continues to listen for theend of user speech until the user speech discontinues and a goodrecognition result is returned, as indicated by the “good result” event432, the user speech discontinues and a poor recognition result isreturned, as indicated by the “poor result” event 434, or the user 116speaks for longer than a predetermined amount of time, as indicated bythe “timeout: end of speech not detected” event 436. Preferably, thepredetermined amount of time the user is allowed to speak is based onthe longest model of the grammar at any one prompt adjusted to accountfor normal speech patterns, such as pauses, hesitations, stuttering, andthe like. For example, if the longest model of the grammar at aparticular point is 3 seconds in length, the user may be allowed tospeak for 3-5 seconds before triggering a timeout event. In determiningthe amount of time, however, it should be noted that time periods ofless than 300 ms is generally considered to be speech at the syllabiclevel and to be too short. Longer periods, such as 600-800 ms isgenerally long enough for a single-token command phrase, but preferably3 seconds for NL commands.

[0065] If, while in the Tentative Barge-In State 430, the voicerecognition algorithm 120 returns a result, either good or poor, thenthe IVR system 100 preferably transitions into the Machine ListeningState 440, as illustrated by the “good result” event 432 and the “poorresult” event 434, respectively. In the Machine Listening State 440 theIVR system 100 listens for user speech. Preferably, if the MachineListening State 440 is entered as a result of the “good result” event432 the period of time the IVR system 100 waits for user speech isshorter, such as 1.5-4.0 seconds, but preferably 2.0 seconds, than theperiod of time the IVR system 100 waits in the Machine Listening State440 as a result of the “poor result” event 434, such as 3.0-6.0 seconds,but preferably 4.0 seconds. By listening in the Machine Listening State440 even on a “good result” event 432, the IVR system 100 compensatesfor false positive recognition results, false starts, partial inputs,and stuttering.

[0066] If, while in the Machine Listening State 440, additional userspeech is detected and the Machine Listening State 440 was entered as aresult of the “good result” event 432, then the IVR application 118determines which result is to be used and reports a good result on the“final good result” event 446 transition. Preferably, the IVRapplication 118 determines which result, i.e., the result of therecognition of the first user speech from the “Tentative Barge-In State”430 or the result of the recognition of the second user speech from the“Machine Listening State” 440, based on whether the speech patterns weremultitoken/single-token speech patterns, and on which result had thehigher confidence value. In the preferred embodiment, the result havingthe highest confidence value is reported as the good result. If theconfidence values are substantially equivalent, then it is preferredthat the multi-token result is used.

[0067] If the Machine Listening State 440 was entered as a result of the“good result” event 432 and no additional user input is detected asdiscussed above, then preferably a good result is reported asillustrated by the “final good result” event 446. Similarly, if theMachine Listening State 440 was entered as a result of the “poor result”event 434 and no additional user input is detected as discussed above,then preferably a poor result is reported as illustrated by the “finalpoor result” event 442.

[0068] If, while in the Tentative Barge-In State 430, the user speechcontinues for greater than a predetermined amount of time as discussedabove, then the IVR system 100 times out as illustrated by the “4-Ctimeout: end of speech not detected” event 436. Preferably, if the IVRsystem 100 times out, then a poor result is indicated and the IVRapplication 118 proceeds accordingly.

[0069] If, while in the Machine Speaking State 420, the prompt completesas indicated by the “audio complete” event 424, then the IVR system 100transitions into the Machine Listening State 440, wherein the IVR system100 waits, preferably for up to 3-5 seconds, but for a duration thatdepends more precisely on the length of utterances in the grammar andthe specifics of the prompt and the past conditions of the interaction,for the user to begin speaking. If the Voice Recognition Algorithm 120detects a beginning and an end to the user speech, the voice recognitionalgorithm 120 processes the speech and a good result or a bad result isindicated accordingly, as illustrated by the “final good result” event446 and the “final poor result” event 442.

[0070] If the IVR system 100 transitions into the Machine ListeningState 440 as a result of the “audio complete” event 424, then there aretwo timeout conditions. First, if the user begins speaking and an end ofthe speech is not detected within a predetermined amount of time, suchas five seconds, then the IVR system 100 preferably indicates a poorresult as illustrated by the “4-B timeout: end of speech not detected”event 448. Second, if the Voice Recognition Algorithm 120 fails todetect a beginning of speech within a predetermined amount of time, suchas four seconds, then the IVR system 100 preferably indicates a poorresult as illustrated by the “4-B timeout: beginning of speech notdetected” event 444.

[0071]FIG. 5 is an alternative state transition diagram to FIG. 4 thatmay be used by the IVR system 100 in accordance with one embodiment ofthe present invention to control prompt playing and recognition states.Specifically, the reference numeral 500 generally illustrates a complexbarge-in state transition diagram that may be used in prompt playing andrecognition states such as the Play Prompt and Recognize State 320 andthe Alternative Play Prompt and Recognize State 340 of FIG. 3. WhileFIGS. 4 and 5 generally represent alternative methods for controllinguser barge-in, both systems could be used within a single IVRapplication. The barge-in state transition diagram 400 is preferred forapplications with shorter prompts, that can exercise good control overprompt duration, and which are being used in environments that havelittle intermittent background noise. The complex barge-in statetransition diagram 500, however, is preferred for situations whichgenerally experience more frequent false starts, embedded pauses, andthe like, such as applications with longer prompts or in which theapplication can exercise little control over prompt duration, and whichare being used in environments that have unpredictable background noise.

[0072] Accordingly, the “entry” event 510 represents a transition into aprompt playing and recognition state. Upon entry to the Machine SpeakingState 520, a prompt is started. The prompt preferably continues to playuntil either the user 116 begins speaking, as illustrated by the “userspeech begins” event 522, or the prompt is completed, as indicated bythe “audio complete” event 524. If the “user speech begins” event 522occurs while in the Machine Speaking State 520, then the IVR system 100preferably transitions into the Tentative Barge-In State 530, whereinthe prompt is terminated and the Voice Recognition Algorithm 120 listensfor the end of user speech.

[0073] The IVR system 100 continues to listen for the end of user speechuntil the user speech discontinues and a good recognition result isreturned, as indicated by the “good result” event 532, the user speechdiscontinues and a poor recognition result is returned, as indicated bythe “poor result” event 534, or the user 116 speaks for longer than apredetermined amount of time, such as 4-8 seconds, but preferably 6seconds, as indicated by the “timeout: end of speech not detected” event536.

[0074] If, while in the Tentative Barge-In State 530, the voicerecognition algorithm 120 returns a result, either good or poor, thenthe IVR system 100 preferably transitions into the Tentative MachineListening State 540, as illustrated by the “good result” event 532 andthe “poor result” event 534, respectively. In the Tentative MachineListening State 540 the IVR system 100 listens for user speech. If theuser begins to speak within a predetermined amount of time, such as 2-5seconds, but preferably 3 seconds, then the IVR system 100 transitionsinto a Machine Listening State 550, wherein the Voice RecognitionAlgorithm 120 captures the user's speech to attempt recognition.

[0075] If the user 116 does not begin speaking within a predeterminedamount of time, however, then the IVR system 100 preferably transitionsto report a good result if the IVR system transitioned into theTentative Machine Listening State 540 as a result of the “good result”event 532, as illustrated by the “timeout with good result” event 546,and to the Machine Listening State 550 if the IVR system transitionedinto the Tentative Machine Listening State 540 as a result of the “poorresult” event 534, as illustrated by the “timeout with poor result”event 544. Therefore, if the voice recognition algorithm 120 confidentlyrecognizes the user's initial attempt at barge-in in the TentativeBarge-In State 530, the IVR system 100 waits in the Tentative MachineListening State 540 providing the user 116 an opportunity to re-enterthe command to compensate for partial inputs, and the like. Falsepositive recognition as a result of false starts, stuttering, backgroundnoise, and the like, cannot be known to the user at this point, but maystill be corrected in the Tentative Machine Listening State 540accidentally by users who respond to the pause as a cue that it is theirturn to speak.

[0076] If the user does not reenter the command, then the IVR system 100reports a good result 546. If, however, the voice recognition algorithm120 fails to confidently recognize the user's initial attempt atbarge-in, i.e., the “poor result” event 534, the IVR system 100 givesthe user a second chance to enter a valid command by transitioning fromthe Tentative Machine Listening State 540 to the Machine Listening State550. This new speech may correct for the poor result 534 if it wascaused by a false start, partial input, certain instances of backgroundnoise, and stuttering, and the like.

[0077] If, while in the Tentative Machine Listening State 540, the userrestarts speaking or the predetermined amount of time passes without agood recognition result, then the IVR system preferably transitions intothe Machine Listening State 550, as illustrated by the “user speakingrestarts” event 542 and the “timeout with poor result” event 544,respectively. Additionally, the IVR system 100 preferably transitionsinto the Machine Listening State 550 from the Machine Speaking State 520if the prompt is completed, as illustrated by the “audio complete” event524. The Machine Listening State 550 listens for the user 116 to speakand, if the user 116 speaks, attempts to recognize the speech pattern.If, while the IVR system 100 is in the Machine Listening State 550, theuser 116 speaks and the speech pattern was recognized as a confidentresult, then the IVR system 100 preferably reports a good result asillustrated by the “user finished: good result” event 554.

[0078] If, however, while the IVR system 100 is in the Machine ListeningState 550, the user 116 speaks and the voice recognition algorithm 120returned a poor result, or the user 0.116 fails to speak for apredetermined amount of time, such as 3-7 seconds, but preferably 5seconds, then the Machine Listening State 550 preferably returns a poorresult, as illustrated by the “timeout and/or poor result” event 552.

[0079] It is understood that the present invention can take many formsand embodiments. Accordingly, several variations may be made in theforegoing without departing from the spirit or the scope of theinvention.

[0080] Having thus described the present invention by reference tocertain of its preferred embodiments, it is noted that the embodimentsdisclosed are illustrative rather than limiting in nature and that awide range of variations, modifications, changes, and substitutions arecontemplated in the foregoing disclosure and, in some instances, somefeatures of the present invention may be employed without acorresponding use of the other features. Many such variations andmodifications may be considered obvious and desirable by those skilledin the art based upon a review of the foregoing description of preferredembodiments. Accordingly, it is appropriate that the appended claims beconstrued broadly and in a manner consistent with the scope of theinvention.

1. A method of allowing a user to barge-in over prompts, the methodcomprising the steps performed by a machine of: playing a prompt;detecting an initial user speech from the user; determining whether theuser speech restarts within a predetermined amount of time; upon adetermination that the user speech restarts, using the user speech afterthe restart for recognition purposes; and upon a determination that theuser speech does not restart, using the initial user speech.
 2. A methodof allowing a user to barge-in over prompts, the method comprising thesteps performed by a machine of: playing a prompt; determining whetherthe user has begun speaking, resulting in an initial user speech; upon adetermination that the user has begun speaking, generating a firstrecognition result based upon the initial user speech; determiningwhether the user speech restarts within a predetermined amount of time,resulting in a second user speech; upon a determination that the userspeech restarts, performing the substeps of: generating a secondrecognition result based upon the second user speech; and reporting thesecond recognition result; and upon a determination that the user speechdoes not restart, reporting the first recognition result.
 3. The methodof claim 2, wherein the predetermined amount of time is between one andfour seconds.
 4. A method of allowing a user to barge-in over prompts,the method comprising the steps performed by a machine of: playing aprompt; determining whether the user has begun speaking, resulting in aninitial user speech; upon a determination that the user has begunspeaking, performing the substeps of: halting the playing of the prompt;and generating a first recognition result based upon the initial userspeech; determining whether the user speech restarts within apredetermined amount of time, resulting in a second user speech; upon adetermination that the user speech restarts, performing the substeps of:generating a second recognition result based upon the second userspeech; determining whether the first recognition result or the secondrecognition result is to be used; upon a determination that the firstrecognition result is to be used, reporting the first recognitionresult; and upon a determination that the second recognition result isto be used, reporting the second recognition result; and upon adetermination that the user speech does not restart, using the firstrecognition result.
 5. The method of claim 4, wherein the predeterminedamount of time is between one and four seconds.
 6. The method of claim4, wherein each of the first recognition result and the secondrecognition result comprises a confidence value, and wherein the step ofdetermining whether the first recognition result or the secondrecognition result is to be used is performed by selecting the resultwith the best confidence value.
 7. The method of claim 4, wherein thestep of determining whether the first recognition result or the secondrecognition result is to be used is performed by selecting the resultcomprising a multi-token result.
 8. A method of providing a voiceinterface between a machine and a user, the method comprising the stepsperformed by the machine of: playing a prompt; receiving a voice commandfrom the user indicating a preferred option; performing a voicerecognition algorithm on the voice command, the voice recognitionalgorithm returning a recognized command and a confidence value;determining whether the recognized command corresponds to a validfunction and whether the confidence value is acceptable; upon adetermination that the recognized command corresponds to a validfunction and that the confidence value is acceptable, performing theactions corresponding to the recognized command; upon a determinationthat the recognized command does not correspond to a valid function orthat the confidence value is unacceptable, playing an alternative promptfor providing an alternative method for the user to enter a validcommand; determining whether the voice recognition algorithm failed toreturn a valid recognized command and an acceptable confidence valueafter a plurality of consecutive attempts; and upon a determination thatthe voice recognition algorithm failed to return a valid recognizedcommand and an acceptable confidence value after a plurality ofconsecutive attempts, transitioning into a known state.
 9. A method ofproviding a voice interface between a machine and a user, the methodcomprising the steps performed by the machine of: playing a prompt;receiving a voice command from the user indicating a preferred option;determining if the voice command is essentially a single-token command;upon a determination that the voice command is essentially asingle-token command, playing a multi-token prompt having thesingle-token command; and upon a determination that the voice command isnot essentially a single-token command, performing the voice command.10. The method of claim 9, further comprising the step of, upon adetermination that the voice command is not essentially a single-tokencommand, playing a success prompt.
 11. A method of determining a grammarof an interaction state of an interactive voice response system, themethod comprising the steps of: initializing the grammar with a firstset of models corresponding to valid actions of the interaction state;adding to the grammar a second set of models corresponding to validactions of a lateral state; and adding to the grammar a third set ofmodels corresponding to valid actions of an entry state.
 12. The methodof claim 11, wherein the method further comprises the step of adding tothe grammar a fourth set of models corresponding to valid globalcommands.
 13. The method of claim 11, wherein the second set of modelscomprise a subset of valid actions of the lateral state, the subset ofvalid actions being resistant to out-of-grammar errors.
 14. The methodof claim 11, wherein the third set of models comprise a subset of validactions of the entry state, the subset of valid actions being resistantto out-of-grammar errors.
 15. A method of determining a grammar of aninteraction state of an interactive voice response system, the methodcomprising the steps of: initializing the grammar with a first set ofmodels corresponding to valid actions of the interaction state; addingto the grammar a second set of models comprising a subset of validactions of a lateral state, the subset of valid actions being resistantto out-of-grammar errors; and adding to the grammar a third set ofmodels comprising a subset of valid actions of an entry state, thesubset of valid actions of the entry state being resistant toout-of-grammar errors corresponding to valid actions of the entry state.16. An apparatus for allowing a user to barge-in over prompts, theapparatus comprising: means for playing a prompt; means for detecting aninitial user speech from the user; means for determining whether theuser speech restarts within a predetermined amount of time; means for,upon a determination that the user speech restarts, using the userspeech after the restart for recognition purposes; and means for, upon adetermination that the user speech does not restart, using the initialuser speech.
 17. An apparatus for allowing a user to barge-in overprompts, the apparatus comprising: means for playing a prompt; means fordetermining whether the user has begun speaking, resulting in an initialuser speech; means for, upon a determination that the user has begunspeaking, generating a first recognition result based upon the initialuser speech; means for determining whether the user speech restartswithin a predetermined amount of time, resulting in a second userspeech; means for, upon a determination that the user speech restarts,generating a second recognition result based upon the second userspeech, and reporting the second recognition result; and means for, upona determination that the user speech does not restart, reporting thefirst recognition result.
 18. The apparatus of claim 17, wherein thepredetermined amount of time is between one and four seconds.
 19. Anapparatus for allowing a user to barge-in over prompts, the apparatuscomprising: means for playing a prompt; means for determining whetherthe user has begun speaking, resulting in an initial user speech; meansfor, upon a determination that the user has begun speaking, halting theplaying of the prompt, and generating a first recognition result basedupon the initial user speech; means for determining whether the userspeech restarts within a predetermined amount of time, resulting in asecond user speech; means for, upon a determination that the user speechrestarts, generating a second recognition result based upon the seconduser speech, determining whether the first recognition result or thesecond recognition result is to be used, reporting the first recognitionresult upon a determination that the first recognition result is to beused, and reporting the second recognition result upon a determinationthat the second recognition result is to be used; and means for, upon adetermination that the user speech does not restart, using the firstrecognition result.
 20. The apparatus of claim 19, wherein thepredetermined amount of time is between one and four seconds.
 21. Theapparatus of claim 19, wherein each of the first recognition result andthe second recognition result comprises a confidence value, and whereinthe means for determining whether the first recognition result or thesecond recognition result is to be used is performed by selecting theresult with the best confidence value.
 22. The apparatus of claim 19,wherein the means for determining whether the first recognition resultor the second recognition result is to be used is performed by selectingthe result comprising a multi-token result.
 23. An apparatus forproviding a voice interface between a machine and a user, the apparatuscomprising: means for playing a prompt; means for receiving a voicecommand from the user indicating a preferred option; means forperforming a voice recognition algorithm on the voice command, the voicerecognition algorithm returning a recognized command and a confidencevalue; means for determining whether the recognized command correspondsto a valid function and whether the confidence value is acceptable;means for, upon a determination that the recognized command correspondsto a valid function and that the confidence value is acceptable,performing the actions corresponding to the recognized command; meansfor, upon a determination that the recognized command does notcorrespond to a valid function or that the confidence value isunacceptable, playing an alternative prompt for providing an alternativemethod for the user to enter a valid command; means for determiningwhether the voice recognition algorithm failed to return a validrecognized command and an acceptable confidence value after a pluralityof consecutive attempts; and means for, upon a determination that thevoice recognition algorithm failed to return a valid recognized commandand an acceptable confidence value after a plurality of consecutiveattempts, transitioning into a known state.
 24. An apparatus forproviding a voice interface between a machine and a user, the apparatuscomprising: means for playing a prompt; means for receiving a voicecommand from the user indicating a preferred option; means fordetermining if the voice command is essentially a single-token command;means for, upon a determination that the voice command is essentially asingle-token command, playing a multi-token prompt having thesingle-token command; and means for, upon a determination that the voicecommand is not essentially a single-token command, performing the voicecommand.
 25. The apparatus of claim 24, further comprising means for,upon a determination that the voice command is not essentially asingle-token command, playing a success prompt.
 26. An apparatus fordetermining a grammar of an interaction state of an interactive voiceresponse system, the apparatus comprising: means for initializing thegrammar with a first set of models corresponding to valid actions of theinteraction state; means for adding to the grammar a second set ofmodels corresponding to valid actions of a lateral state; and means foradding to the grammar a third set of models corresponding to validactions of an entry state.
 27. The apparatus of claim 26, wherein theapparatus further comprises means for adding to the grammar a fourth setof models corresponding to valid global commands.
 28. The apparatus ofclaim 26, wherein the second set of models comprise a subset of validactions of the lateral state, the subset of valid actions beingresistant to out-of-grammar errors.
 29. The apparatus of claim 26,wherein the third set of models comprise a subset of valid actions ofthe entry state, the subset of valid actions being resistant toout-of-grammar errors.
 30. An apparatus for determining a grammar of aninteraction state of an interactive voice response system, the apparatuscomprising: means for initializing the grammar with a first set ofmodels corresponding to valid actions of the interaction state; meansfor adding to the grammar a second set of models comprising a subset ofvalid actions of a lateral state, the subset of valid actions beingresistant to out-of-grammar errors; and means for adding to the grammara third set of models comprising a subset of valid actions of an entrystate, the subset of valid actions of the entry state being resistant toout-of-grammar errors corresponding to valid actions of the entry state.31. A computer program product for allowing a user to barge-in overprompts, the computer program product having a medium with a computerprogram embodied thereon, the computer program comprising: computerprogram code for playing a prompt; computer program code for detectingan initial user speech from the user; computer program code fordetermining whether the user speech restarts within a predeterminedamount of time; computer program code for, upon a determination that theuser speech restarts, using the user speech after the restart forrecognition purposes; and computer program code for, upon adetermination that the user speech does not restart, using the initialuser speech.
 32. A computer program product for allowing a user tobarge-in over prompts, the computer program product having a medium witha computer program embodied thereon, the computer program comprising:computer program code for playing a prompt; computer program code fordetermining whether the user has begun speaking, resulting in an initialuser speech; computer program code for, upon a determination that theuser has begun speaking, generating a first recognition result basedupon the initial user speech; computer program code for determiningwhether the user speech restarts within a predetermined amount of time,resulting in a second user speech; computer program code for, upon adetermination that the user speech restarts, generating a secondrecognition result based upon the second user speech, and reporting thesecond recognition result; and computer program code for, upon adetermination that the user speech does not restart, reporting the firstrecognition result.
 33. The computer program product of claim 32,wherein the predetermined amount of time is between one and fourseconds.
 34. A computer program product for allowing a user to barge-inover prompts, the computer program product having a medium with acomputer program embodied thereon, the computer program comprising:computer program code for playing a prompt; computer program code fordetermining whether the user has begun speaking, resulting in an initialuser speech; computer program code for, upon a determination that theuser has begun speaking, halting the playing of the prompt, andgenerating a first recognition result based upon the initial userspeech; computer program code for determining whether the user speechrestarts within a predetermined amount of time, resulting in a seconduser speech; computer program code for, upon a determination that theuser speech restarts, generating a second recognition result based uponthe second user speech, determining whether the first recognition resultor the second recognition result is to be used, reporting the firstrecognition result upon a determination that the first recognitionresult is to be used, and reporting the second recognition result upon adetermination that the second recognition result is to be used; andcomputer program code for, upon a determination that the user speechdoes not restart, using the first recognition result.
 35. The computerprogram product of claim 34, wherein the predetermined amount of time isbetween one and four seconds.
 36. The computer program product of claim34, wherein each of the first recognition result and the secondrecognition result comprises a confidence value, and wherein thecomputer program code for determining whether the first recognitionresult or the second recognition result is to be used is performed byselecting the result with the best confidence value.
 37. The computerprogram product of claim 34, wherein the computer program code fordetermining whether the first recognition result or the secondrecognition result is to be used is performed by selecting the resultcomprising a multi-token result.
 38. A computer program product forproviding a voice interface between a machine and a user, the computerprogram product having a medium with a computer program embodiedthereon, the computer program comprising: computer program code forplaying a prompt; computer program code for receiving a voice commandfrom the user indicating a preferred option; computer program code forperforming a voice recognition algorithm on the voice command, the voicerecognition algorithm returning a recognized command and a confidencevalue; computer program code for determining whether the recognizedcommand corresponds to a valid function and whether the confidence valueis acceptable; computer program code for, upon a determination that therecognized command corresponds to a valid function and that theconfidence value is acceptable, performing the actions corresponding tothe recognized command; computer program code for, upon a determinationthat the recognized command does not correspond to a valid function orthat the confidence value is unacceptable, playing an alternative promptfor providing an alternative method for the user to enter a validcommand; computer program code for determining whether the voicerecognition algorithm failed to return a valid recognized command and anacceptable confidence value after a plurality of consecutive attempts;and computer program code for, upon a determination that the voicerecognition algorithm failed to return a valid recognized command and anacceptable confidence value after a plurality of consecutive attempts,transitioning into a known state.
 39. A computer program product forproviding a voice interface between a machine and a user, the computerprogram product having a medium with a computer program embodiedthereon, the computer program comprising: computer program code forplaying a prompt; computer program code for receiving a voice commandfrom the user indicating a preferred option; computer program code fordetermining if the voice command is essentially a single-token command;computer program code for, upon a determination that the voice commandis essentially a single-token command, playing a multi-token prompthaving the single-token command; and computer program code for, upon adetermination that the voice command is not essentially a single-tokencommand, performing the voice command.
 40. The computer program productof claim 40, further comprising computer program code for, upon adetermination that the voice command is not essentially a single-tokencommand, playing a success prompt.
 41. A computer program product fordetermining a grammar of an interaction state of an interactive voiceresponse system, the computer program product having a medium with acomputer program embodied thereon, the computer program comprising:computer program code for initializing the grammar with a first set ofmodels corresponding to valid actions of the interaction state; computerprogram code for adding to the grammar a second set of modelscorresponding to valid actions of a lateral state; and computer programcode for adding to the grammar a third set of models corresponding tovalid actions of an entry state.
 42. The computer program product ofclaim 41, wherein the apparatus further comprises computer program codefor adding to the grammar a fourth set of models corresponding to validglobal commands.
 43. The computer program product of claim 41, whereinthe second set of models comprise a subset of valid actions of thelateral state, the subset of valid actions being resistant toout-of-grammar errors.
 44. The computer program product of claim 41,wherein the third set of models comprise a subset of valid actions ofthe entry state, the subset of valid actions being resistant toout-of-grammar errors.
 45. A computer program product for determining agrammar of an interaction state of an interactive voice response system,the computer program product having a medium with a computer programembodied thereon, the computer program comprising: computer program codefor initializing the grammar with a first set of models corresponding tovalid actions of the interaction state; computer program code for addingto the grammar a second set of models comprising a subset of validactions of a lateral state, the subset of valid actions being resistantto out-of-grammar errors; and computer program code for adding to thegrammar a third set of models comprising a subset of valid actions of anentry state, the subset of valid actions of the entry state beingresistant to out-of-grammar errors.